/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tesis.domain;

import java.io.Serializable;
import java.util.List;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author hectdx
 */
@Entity
@Table(name = "regla")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Regla.findAll", query = "SELECT r FROM Regla r"),
    @NamedQuery(name = "Regla.findByIdregla", query = "SELECT r FROM Regla r WHERE r.idregla = :idregla"),
    @NamedQuery(name = "Regla.findByNombre", query = "SELECT r FROM Regla r WHERE r.nombre = :nombre")})
public class Regla implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "idregla", nullable = false)
    private Integer idregla;
    @Basic(optional = false)
    @Column(name = "nombre", nullable = false, length = 30)
    private String nombre;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idregla")
    private List<ParametroDocumento> parametroDocumentoList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idregla")
    private List<ParametroVariable> parametroVariableList;
    @JoinColumn(name = "idtiporegla", referencedColumnName = "idtiporegla", nullable = false)
    @ManyToOne(optional = false)
    private TipoRegla idtiporegla;
    @JoinColumn(name = "idestacion", referencedColumnName = "idestacion", nullable = false)
    @ManyToOne(optional = false)
    private Estacion idestacion;

    public Regla() {
    }

    public Regla(Integer idregla) {
        this.idregla = idregla;
    }

    public Regla(Integer idregla, String nombre) {
        this.idregla = idregla;
        this.nombre = nombre;
    }

    public Integer getIdregla() {
        return idregla;
    }

    public void setIdregla(Integer idregla) {
        this.idregla = idregla;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    @XmlTransient
    public List<ParametroDocumento> getParametroDocumentoList() {
        return parametroDocumentoList;
    }

    public void setParametroDocumentoList(List<ParametroDocumento> parametroDocumentoList) {
        this.parametroDocumentoList = parametroDocumentoList;
    }

    @XmlTransient
    public List<ParametroVariable> getParametroVariableList() {
        return parametroVariableList;
    }

    public void setParametroVariableList(List<ParametroVariable> parametroVariableList) {
        this.parametroVariableList = parametroVariableList;
    }

    public TipoRegla getIdtiporegla() {
        return idtiporegla;
    }

    public void setIdtiporegla(TipoRegla idtiporegla) {
        this.idtiporegla = idtiporegla;
    }

    public Estacion getIdestacion() {
        return idestacion;
    }

    public void setIdestacion(Estacion idestacion) {
        this.idestacion = idestacion;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idregla != null ? idregla.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Regla)) {
            return false;
        }
        Regla other = (Regla) object;
        if ((this.idregla == null && other.idregla != null) || (this.idregla != null && !this.idregla.equals(other.idregla))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "entities.Regla[ idregla=" + idregla + " ]";
    }
    
}
